﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using INSTA.StockApplication.BLL;

namespace INSTA.StockApplication.UI.Windows
{

    public partial class AddUser : Form
    {
        private int id;

        public AddUser()
        {
            InitializeComponent();
            fillComboBox();
            label10.Text = "Nouvel utilisateur";
        }

        public AddUser(int id,string nom,string prenom,string mail,string adresse,string cp,string ville,
            string pays,string telephone)
        {
            InitializeComponent();
            fillComboBox();
            label10.Text = "Modification de " + nom + prenom;
            comboBox1.Visible = false;
            label9.Visible = false;
            tNom.Text = nom;
            tPays.Text = pays;
            tPrenom.Text = prenom;
            tAdresse.Text = adresse;
            tCP.Text = cp;
            tMail.Text = mail;
            tTelephone.Text = telephone;
            tVille.Text = ville;
            this.id = id;
        }

        private void fillComboBox()
        {
            var type = new TypeUser();
            comboBox1.DataSource = type.GetRolesFromDatabase();
            comboBox1.DisplayMember = "LIBELLE_ROLE";
            comboBox1.ValueMember = "ID_ROLE";
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
        }

        private void btnValider_Click(object sender, EventArgs e)
        {
            if(checkFields())
            {
                if(id > 0)
                {
                    bool modifUser = User.UpdateUser(id, tNom.Text, tPrenom.Text, tMail.Text, tAdresse.Text,
                                                     tCP.Text, tVille.Text, tPays.Text, tTelephone.Text);
                    if (modifUser)
                    {
                        MessageBox.Show("Utilisateur modifié.");
                    }
                    else
                    {
                        MessageBox.Show("Une erreur s'est produite lors de la modification de l'utilisateur.");
                    }
                } else
                {
                    bool addUser = User.AddUser(tNom.Text, tPrenom.Text, tMail.Text, tAdresse.Text,
                    tCP.Text, tVille.Text, tPays.Text, tTelephone.Text, comboBox1.SelectedIndex + 1);
                    if (addUser)
                    {
                        MessageBox.Show("Utilisateur enregistre.");
                    }
                    else
                    {
                        MessageBox.Show("Une erreur s'est produite lors de l'enregistrement de l'utilisateur.");
                    }
                }
                
                resetFields();
                this.Close();
            }
            else
            {
                MessageBox.Show("Veuillez renseigner tous les champs");
            }

        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void tableLayoutPanel1_Paint(object sender, PaintEventArgs e)
        {

        }

        private bool checkFields()
        {
            if(tAdresse.Text == "" || tCP.Text == "" || tMail.Text == "" || tNom.Text == "" ||
                tPays.Text == "" || tPrenom.Text == "" || tTelephone.Text == "" || tVille.Text == "")
            {
                return false;
            }
            return true;
        }

        private void resetFields()
        {
            tAdresse.Text = "";
            tCP.Text = "";
            tMail.Text = "";
            tNom.Text = "";
            tPays.Text = "";
            tPrenom.Text = "";
            tTelephone.Text = "";
            tVille.Text = "";
        }

        private void button1_Click(object sender, EventArgs e)
        {
            
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            
        }
    }
}
